

#ifndef ACCOUNTDAO_STRUCT_H
#define ACCOUNTDAO_STRUCT_H

#include <stdint.h>
#include <string>
#include <iostream>
#include "libc2c/byte_stream.h"
#include "app_platform/intf_service_object.h"
#include "erp/account/ddo/contactfilterddo_account.h"	
#include "erp/account/ddo/employeeddo_account.h"	
#include "erp/account/ddo/customercreditddo_account.h"	
#include <set>	
#include "erp/account/ddo/businessunitsddo_account.h"	
#include <map>	
#include <vector>	
#include "erp/account/ddo/employeefilterddo_account.h"	
#include "erp/account/ddo/contactddo_account.h"	
#include "erp/account/ddo/businessunitsfilterddo_account.h"	

namespace erp
{
namespace account
{
namespace dao
{

	const uint32_t ACCOUNTDAO_DELETEBUSINESSUNITS_REQ_CMD_ID = 0xc0381802; /// 请求命令号
	const uint32_t ACCOUNTDAO_DELETEBUSINESSUNITS_RESP_CMD_ID = 0xc0388802; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_DELETECONTACT_REQ_CMD_ID = 0xc038180c; /// 请求命令号
	const uint32_t ACCOUNTDAO_DELETECONTACT_RESP_CMD_ID = 0xc038880c; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_DELETEEMPLOYEE_REQ_CMD_ID = 0xc0381806; /// 请求命令号
	const uint32_t ACCOUNTDAO_DELETEEMPLOYEE_RESP_CMD_ID = 0xc0388806; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETBUSINESSUNITSBYFILTER_REQ_CMD_ID = 0xc0381804; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETBUSINESSUNITSBYFILTER_RESP_CMD_ID = 0xc0388804; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETBUSINESSUNITSBYSYSNOS_REQ_CMD_ID = 0xc0381803; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETBUSINESSUNITSBYSYSNOS_RESP_CMD_ID = 0xc0388803; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETCONTACTBYFILTER_REQ_CMD_ID = 0xc038180e; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETCONTACTBYFILTER_RESP_CMD_ID = 0xc038880e; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETCONTACTBYSYSNOS_REQ_CMD_ID = 0xc038180d; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETCONTACTBYSYSNOS_RESP_CMD_ID = 0xc038880d; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETCUSTOMERCREDIT_REQ_CMD_ID = 0xc0381809; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETCUSTOMERCREDIT_RESP_CMD_ID = 0xc0388809; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETEMPLOYEEBYFILTER_REQ_CMD_ID = 0xc0381808; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETEMPLOYEEBYFILTER_RESP_CMD_ID = 0xc0388808; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_GETEMPLOYEEBYSYSNOS_REQ_CMD_ID = 0xc0381807; /// 请求命令号
	const uint32_t ACCOUNTDAO_GETEMPLOYEEBYSYSNOS_RESP_CMD_ID = 0xc0388807; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_MODIFYBUSINESSUNITS_REQ_CMD_ID = 0xc0381801; /// 请求命令号
	const uint32_t ACCOUNTDAO_MODIFYBUSINESSUNITS_RESP_CMD_ID = 0xc0388801; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_MODIFYCONTACT_REQ_CMD_ID = 0xc038180b; /// 请求命令号
	const uint32_t ACCOUNTDAO_MODIFYCONTACT_RESP_CMD_ID = 0xc038880b; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_MODIFYCUSTOMERCREDIT_REQ_CMD_ID = 0xc038180a; /// 请求命令号
	const uint32_t ACCOUNTDAO_MODIFYCUSTOMERCREDIT_RESP_CMD_ID = 0xc038880a; /// 回应命令号
	

	const uint32_t ACCOUNTDAO_MODIFYEMPLOYEE_REQ_CMD_ID = 0xc0381805; /// 请求命令号
	const uint32_t ACCOUNTDAO_MODIFYEMPLOYEE_RESP_CMD_ID = 0xc0388805; /// 回应命令号
	


const uint16_t ACCOUNTDAO_MAX_PROTOCAL_VERSION = 2; //>平台支持的最大协议版本号


///////////////////////////// STRUCTS /////////////////////////////////////////////////
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteBusinessUnitsReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t businessUnitsSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETEBUSINESSUNITS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & businessUnitsSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteBusinessUnitsResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETEBUSINESSUNITS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteContactReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t contactSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETECONTACT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & contactSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteContactResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETECONTACT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteEmployeeReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t employeeSysNo;
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETEEMPLOYEE_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & employeeSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoDeleteEmployeeResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_DELETEEMPLOYEE_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetBusinessUnitsByFilterReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CBusinessUnitsFilterDdo filter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CBusinessUnitsDdo > businessUnitsDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETBUSINESSUNITSBYFILTER_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			filter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetBusinessUnitsByFilterResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CBusinessUnitsDdo > businessUnitsDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETBUSINESSUNITSBYFILTER_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & businessUnitsDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetBusinessUnitsBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > businessUnitsSysNo;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CBusinessUnitsDdo > businessUnitsDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETBUSINESSUNITSBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & businessUnitsSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetBusinessUnitsBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CBusinessUnitsDdo > businessUnitsDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETBUSINESSUNITSBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & businessUnitsDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetContactByFilterReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CContactFilterDdo filter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CContactDdo > contactDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCONTACTBYFILTER_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			filter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetContactByFilterResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CContactDdo > contactDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCONTACTBYFILTER_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & contactDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetContactBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > contactSysNo;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CContactDdo > contactDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCONTACTBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & contactSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetContactBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CContactDdo > contactDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCONTACTBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & contactDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetCustomerCreditReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		uint64_t branchSysNo;
		uint64_t businessUnitsSysNo;
		std::string inReserve;
		std::string errmsg;
		erp::account::ddo::CCustomerCreditDdo customerCreditDdo;	
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCUSTOMERCREDIT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & branchSysNo;
			bs & businessUnitsSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetCustomerCreditResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		erp::account::ddo::CCustomerCreditDdo customerCreditDdo;	
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETCUSTOMERCREDIT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			customerCreditDdo.Serialize(bs);
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetEmployeeByFilterReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CEmployeeFilterDdo filter;	
		std::string inReserve;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CEmployeeDdo > businessUnitsDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETEMPLOYEEBYFILTER_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			filter.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetEmployeeByFilterResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint32_t total;
		std::vector<erp::account::ddo::CEmployeeDdo > businessUnitsDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETEMPLOYEEBYFILTER_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & total;
			bs & businessUnitsDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetEmployeeBySysNosReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		std::set<uint64_t > employeeSysNo;
		std::string inReserve;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CEmployeeDdo > employeeDdo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETEMPLOYEEBYSYSNOS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			bs & employeeSysNo;
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoGetEmployeeBySysNosResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::map<uint64_t,uint32_t > errorCode;
		std::map<uint64_t,std::string > errorMsg;
		std::map<uint64_t,erp::account::ddo::CEmployeeDdo > employeeDdo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_GETEMPLOYEEBYSYSNOS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & errorCode;
			bs & errorMsg;
			bs & employeeDdo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyBusinessUnitsReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CBusinessUnitsDdo businessUnitsDdo;	
		std::string inReserve;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYBUSINESSUNITS_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			businessUnitsDdo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyBusinessUnitsResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYBUSINESSUNITS_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & SysNo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyContactReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CContactDdo contactDdo;	
		std::string inReserve;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYCONTACT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			contactDdo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyContactResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYCONTACT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & SysNo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyCustomerCreditReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CCustomerCreditDdo customerCreditDdo;	
		std::string inReserve;
		std::string errmsg;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYCUSTOMERCREDIT_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			customerCreditDdo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyCustomerCreditResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYCUSTOMERCREDIT_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyEmployeeReq : public IServiceObject, public ISerializableXML
	{
		std::string machineKey;
		std::string source;
		uint32_t sceneId;
		uint32_t option;
		erp::account::ddo::CEmployeeDdo employeeDdo;	
		std::string inReserve;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
	
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYEMPLOYEE_REQ_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
			//检查协议的版本号
		    //if(bs.getVersion() > ACCOUNTDAO_MAX_PROTOCAL_VERSION)
		    //    return false;
			bs & machineKey;
			bs & source;
			bs & sceneId;
			bs & option;
			employeeDdo.Serialize(bs);
			bs & inReserve;
		    return bs.isGood();
		}
		
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};
	
	/**
	 *
 	 * 
	 *
 	 * @date 2013-10-31 19:18:58
 	 * @version 0
	 */	
	struct CAccountDaoModifyEmployeeResp : public IServiceObject, public ISerializableXML
	{
		uint32_t dwResult;
		std::string errmsg;
		uint64_t SysNo;
		std::string outReserve;
		
	    virtual uint32_t getCmdId() const { return ACCOUNTDAO_MODIFYEMPLOYEE_RESP_CMD_ID; }
		virtual bool Serialize(CByteStreamNetwork& bs)
		{
		    bs & dwResult;
			bs & errmsg;
			bs & SysNo;
			bs & outReserve;

		    return bs.isGood();
		}
	    virtual void Dump(std::ostream& os)	{}
	
		virtual bool FromXML(const std::string& sXMLContent) { return true; }
		virtual bool ToXML(std::string& sXMLContent) { return true; }
	};	

}
}
}

#endif /* ACCOUNTDAO_STRUCT_H */

